package com.wty.basic.extendsDemo;

import com.wty.basic.extendsDemo2.Zi2;

/**
 * @Author wangtengyu
 * @Create 2018-08-08-10:14
 */
public class Test {

    /**
     * 测试属性的继承与覆盖
     */
    @org.junit.Test
    public void TestAttribute() {
        System.out.println("-----------父类开始------------");
        Fu fu=new Fu();
        System.out.println(fu.protectedName);
        System.out.println(fu.publicName);
        System.out.println(fu.defaultName);
        System.out.println("-----------父类结束------------");


        System.out.println("-----------子类同一包下------------");
        Zi zi= new Zi();
        System.out.println(zi.protectedName);
        System.out.println(zi.publicName);
        System.out.println(zi.defaultName);
        System.out.println("-----------子类同一包下------------");



        System.out.println("-----------子类不同包下------------");
        Zi2 zi2= new Zi2();
        System.out.println(zi2.protectedName);
        System.out.println(zi2.publicName);
        //System.out.println(zi2.defaultName);//非同一包下的子类，访问不到包修饰符的变量

        System.out.println("-----------子类不同包下------------");
    }

    /**
     * 测试方法的覆盖与集成
     */
    @org.junit.Test
    public void TestMethod() {
        System.out.println("-----------父类开始------------");
        Fu fu=new Fu();
        fu.publicMethod();
        fu.protectedMethod();
        fu.defaultMethod();
        System.out.println("-----------父类结束------------");


        System.out.println("-----------子类同一包下------------");
        Zi zi= new Zi();
        zi.publicMethod();
        zi.protectedMethod();
        zi.defaultMethod();
        System.out.println("-----------子类同一包下------------");



        System.out.println("-----------子类不同包下------------");
        Zi2 zi2= new Zi2();
        zi.defaultMethod();
        //System.out.println(zi2.defaultName);//非同一包下的子类，访问不到包修饰符的变量

        System.out.println("-----------子类不同包下------------");

    }



}
